core: Pick better names for tmpfiles if no prefix given
authorColin Walters <walters@verbum.org>
Fri, 21 Dec 2012 16:07:50 +0000 (11:07 -0500)
committerColin Walters <walters@verbum.org>
Fri, 21 Dec 2012 16:30:58 +0000 (11:30 -0500)
Just makes it easier to track down where files came from.

src/libostree/ostree-core.c

index 6e494d4c39bd4bce0e9b905c2689ed521f09720f..09ce5306035cb3b578128955ca5ec225200930ad 100644 (file)
@@ -1260,6 +1260,29 @@ ostree_create_file_from_input (GFile            *dest_file,
   return ret;
 }
 
+static const char *
+get_default_tmp_prefix (void)
+{
+  static char *tmpprefix = NULL;
+
+  if (g_once_init_enter (&tmpprefix))
+    {
+      const char *prgname = g_get_prgname ();
+      const char *p;
+      char *prefix;
+
+      p = strrchr (prgname, '/');
+      if (p)
+        prgname = p + 1;
+
+      prefix = g_strdup_printf ("tmp-%s%u-", prgname, getuid ());
+      
+      g_once_init_leave (&tmpprefix, prefix);
+    }
+
+  return tmpprefix;
+}
+
 static char *
 create_tmp_name (const char *dirpath,
                  const char *prefix,
@@ -1270,7 +1293,7 @@ create_tmp_name (const char *dirpath,
   guint i;
 
   if (!prefix)
-    prefix = "tmp";
+    prefix = get_default_tmp_prefix ();
   if (!suffix)
     suffix = "tmp";